package com.demo.gateway.service;

import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.demo.gateway.pojo.GatewayRouteDO;
import com.demo.gateway.vo.core.DataVO;
import com.demo.gateway.vo.core.PageVO;
import com.demo.gateway.vo.core.ReturnVO;

/**
 * @author: demo
 * @date: 2020年7月3日
 * @Document : 网关路由接口
 */
public interface IGateWayRoute {
	/**
	 * 查询所有路由
	 * 
	 * @return
	 */
	public PageVO<GatewayRouteDO> queryAllGatewayRoutes();

	/**
	 *  添加路由
	 * @param route  路由信息
	 * @param effect 是否生效
	 * @return
	 */
	public ReturnVO addRoute(GatewayRouteDO route, boolean effect);

	/**
	 * 批量添加路由
	 * 
	 * @param routes
	 * @return
	 */
	public ReturnVO addRoutes(List<GatewayRouteDO> routes);

	/**
	 * 删除路由
	 * 
	 * @param id
	 * @return
	 */
	public ReturnVO deleteRoute(String id);

	/**
	 * 刷新当前路由
	 */
	public void refreshRoute();

	/**
	 * 获取网关信息
	 * 
	 * @return
	 */
	public DataVO<JSONArray> getGatewayInfo();
	
	/**
	 * 数据库同步到redis
	 * @return
	 */
	public ReturnVO  database2Redis();

}
